﻿//-----------------------------------------------------------------------
// <copyright file="ITask.cs" company="Numbrella foundation">
// Copyright (c) Numbrella foundation. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------

namespace Numbrella.Interaction
{
	/// <summary>
	/// Represents atomic part of <see cref="IProblem"/> that can be solved inependently.
	/// </summary>
	public interface ITask
	{
		/// <summary>
		/// Gets unique task identifier.
		/// </summary>
		int Id { get; }

		/// <summary>
		/// Solves task and prepares <see cref="ITaskResult"/> instance containing task solve results.
		/// </summary>
		/// <returns>Results for solved task.</returns>
		ITaskResult Perform();
	}
}